Python之路 - 内置函数
str类型代码的执行(3个) 🍀
exec
(object[, globals[, locals]]) 👈
将字符串当做表达式去执行,没有返回值
1 | # 流程语句用exec |
eval
(expression, globals=None, locals=None) 👈
将字符串当做表达式去执行,并返回执行结果
1 | # 简单求值表达式用eval |
compile
(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) 👈
把字符传编译成python可执行的代码,但是不会执行
filename : 默认sys.stout
,即默认打印在控制台,打印到指定文件
mode : 指定compile后的对象的执行模式,注意有个single
模式,当source带有变量赋值时,eval模式是解释不了的,所以需要用single模式或者exec模式
1 | # 交互语句用single |
数据类型相关(38) 🍀
数字相关 🍀
数据类型 🍀
bool
([x]) 👈
查看一个元素的布尔值
int
(x=0) /int
(x, base=10) 👈
获取一个数的十进制或者进行进制转换
1 | '1') int( |
float
([x]) 👈
将整数和字符串转换成浮点数
complex
([real[, imag]]) 👈
创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数
1 | 1, 2) complex( |
进制转换 🍀
bin
(x) 👈
将整数x转换为二进制字符串,如果x不为Python中int类型,x必须包含方法__index__()
并且返回值为整数
1 | # 返回一个整数的二进制 |
oct
(x) 👈
转换为八进制
1 | 8) oct( |
hex
(x) 👈
转换为十六进制
1 | 13) oct( |
数学运算 🍀
abs
(x) 👈
返回一个数的绝对值
1 | -1 num = |
divmod
(a, b) 👈
返回两个数的除,余
1 | 5,2) divmod( |
min
(iterable, *[, key, default]) 👈
min
(arg1, arg2, *args[, key]) 👈
返回最小值,如果多个参数最小值一样,则返回第一个
1 | 1,2,3,4]) min([ |
max
(iterable, *[, key, default]) 👈
max
(arg1 , arg2, *args[, key]) 👈
返回最大值,如果多个参数最大值,则返回第一个
1 | 1,2,3,4]) max([ |
sum
(iterable[, start]) 👈
求和,参数为可迭代对象
1 | 1,2,3,4)) sum(( |
round
(number[, ndigits]) 👈
小数精确
1 | # 保留两位小数,四舍五入 |
pow
(x, y[, z]) 👈
幂运算
1 |
|
数据结构相关 🍀
序列 🍀
列表和元组
list
([iterable]) 👈
将可迭代对象转换成list对象,实际上我们创建一个空list时,python解释器自动为我们调用了该方法
tuple
([iterable]) 👈
将可迭代对象转换成tuple对象,与list类似
相关内置函数
reversed
(seq) 👈
顺序翻转,与list中reverse的区别在于,该翻转为新生成了一个对象,而不是在原对象上操作
slice
(stop) 👈
slice
(start, stop[, step]) 👈
返回切片操作的三个参数
1 | # 相当于[0:2:],注意最后一个参数不能为0而是None |
字符串
str
(object=’’) 👈
str
(object=b’’, encoding=’utf-8’, errors=’strict’) 👈
返回一个字符串对象,创建字符串时python解释器为我们调用了该方法进行创建
repr
(object) 👈
返回一个可打印的字符串对象
1 | 123) repr( |
repr还有另外一种用法就是格式化输出的时候,%r表示法 .
1 | print("my name is %s,I am %r" %('alex','sb')) |
format
(value[, format_spec]) 👈
格式化字符串
bytes
([source[, encoding[, errors]]]) 👈
将字符串转成bytes类型
1 | 'lyon',encoding='utf-8') bytes( |
bytearray
([source[, encoding[, errors]]]) 👈
返回一个byte数组,Bytearray类型是一个可变的序列,并且序列中的元素的取值范围为[0,255]
source :
- 如果source为整数,则返回一个长度为source的初始化数组;
- 如果source为字符串,则按照指定的encoding将字符串转换为字节序列;
- 如果source为可迭代类型,则元素必须为[0,255]中的整数;
- 如果source为与buffer接口一致的对象,则此对象也可以被用于初始化bytearray
memoryview
(obj) 👈
函数返回给定参数的内存查看对象(Momory view)
所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问
ord
(c) 👈
把一个字符转换成ASCII表中对应的数字
1 | 'a') ord( |
chr
(i) 👈
返回一个数字在ASCII编码中对应的字符
1 | 66) chr( |
ascii
(object) 👈
在对象的类中寻找__repr__
方法,获取返回值
1 | class Foo: |
数据集合 🍀
字典
dict
(*\kwarg*)
dict
(mapping, *\kwarg*)
dict
(iterable, *\kwarg*)
转换成字典类型,创建一个字典时python解释器会自动帮我们调用该方法
集合
set
([iterable]) 👈
转换成集合类型,创建集合时,事实上就是通过该方法进行创建的
frozenset
([iterable]) 👈
定义冻结集合,即不可变集合,存在hash值
好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法
相关内置函数 🍀
len
(s) 👈
返回一个对象的长度
enumerate
(iterable, start=0) 👈
为元素生成序号,可以定义序号的初始值,默认从0开始
1 | 'a','b','c'] l = [ |
all
(iterable) 👈
判断一个可迭代对象中的元素是否都为空,返回bool值
any
(iterable) 👈
判断一个可迭代对象中是否有真元素,返回bool值
zip
(*iterables) 👈
将两个长度相同的序列整合成键值对,返回一个zip对象可以用dict方法转换查看
1 | 'k1','k2','k3'] l1 = [ |
filter
(function, iterable) 👈
筛选过滤,把可迭代对象中的元素一一传入function中进行过滤
1 | # 筛选出偶数 |
map
(function, iterable, …) 👈
将可迭代对象中的元素一一传入function中执行并返回结果
1 | def func(s): |
sorted
(iterable, **, key=None, reverse=False*) 👈
为一个对象进行排序,在list中有个sort方法;区别:sort会改变原list,而sorted则不会改变原list
1 | 3,4,5,1,2,9,8,7,6] l = [ |
sorted排序还支持像函数传参,接收函数返回值,从而对返回值进行排序
1 | l_sort = [('alex',2),('wusir',3),('jesse',4),('david',9)] |
使用函数来返回列表中每个子元素的第二个元素,对第二个元素(也就是数字)来进行排序
1 | def f_sort(x): #函数指定形参,接收sorted方法传递的参数 |
迭代器/生成器相关(3个) 🍀
range
(stop) 👈
range
(start, stop[, step]) 👈
返回一个序列,为一个可迭代对象,并可用下标取值
1 | from collections import Iterable |
next
(iterator[, default]) 👈
拿取迭代器中的元素,一次只拿一个
1 | 1,2,3,4]) Iter = iter([ |
iter
(object[, sentinel]) 👈
创建一个迭代器
1 | 1,2,3,4]) obj = iter([ |
作用域相关(2个) 🍀
locals
() 👈
打印函数局部命名空间
globals
() 👈
打印函数的全局命名空间
面向对象相关(8个) 🍀
定义类方法 🍀
classmethod
(function) 👈
返回一个函数的类方法
staticmethod
(function) 👈
返回一个函数的属性方法
property
(fget=None, fset=None, fdel=None, doc=None) 👈
返回一个静态属性
判断类之间的关系 🍀
isinstance
(object, classinfo) 👈
判断对象的类型,返回bool值,主要用于判断类之间的关心,因为type无法判断类之间的关心
issubclass
(class, classinfo) 👈
判断一个类是否为另一个类的子类,返回bool值
所有类的基类 🍀
class
object
👈
返回一个基类,不接收任何参数
类的继承 🍀
super
([type[, object-or-type]]) 👈
用于继承父类
封装 🍀
vars
([object]) 👈
返回一个对象中包含的属性
反射相关(4个) 🍀
hasattr
(object, name) >vars
([object]) 👈
参数是一个对象和一个字符串。如果字符串是对象的一个属性的名称,则结果为True,否则为False
getattr
(object, name[, default]) >vars
([object]) 👈
返回对象的命名属性的值,name必须是字符串,如果字符串是对象属性之一的名称,则返回该属性的值
setattr
(object, name, value) >vars
([object]) 👈
为某个对象设置一个属性
delattr
(object, name) >vars
([object]) 👈
删除对象中的属性值
其他(10个) 🍀
input
([prompt]) >vars
([object]) 👈
交互式输入
vars
([object]) 👈
交互式输出
open
(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) >vars
([object]) 👈
打开文件
help
([object]) >vars
([object]) 👈
查找官方说明
hash
(object) >vars
([object]) 👈
返回一个hash地址
callable
(object) >vars
([object]) 👈
判断一个对象是否可以被调用执行
dir
([object]) 👈
返回一个对象中的所有方法
id
(object) 👈
返回一个对象的内存地址
type
(object)
type
(name, bases, dict) 👈
查看一个对象的数据类型
__import__
(name, globals=None, locals=None, fromlist=(), level=0) 👈
该函数是由import进行调用的,我们一般不用